#include #include #define dimA 5 #define dimB 5 typedef enum {false, true} boolean; typedef struct EL1 {int num; struct EL2 *casella; struct EL1 *next;} cartella; typedef struct EL2 {int numero; struct EL2 *next;} caselle; typedef cartella *pcart; typedef caselle *pcas; boolean contasegno(int pos, int neg, int n){ int a; boolean condizione; scanf("%d", &a); if(a==0) return condizione; else if(a>0) return contasegno(pos+1, neg, n); else if(a<0) return contasegno(pos, neg+1, n); if((neg-pos)< n) condizione=true; else condizione=false; } int unione(int v1[], int v2[], int v3[]){ int i, j, k, ris; for(i=0; i0) { v3[i]=v2[j]; ris=i; i++; } if(v2[j]<0) v2[j]*=-1; } return ris; } void trovato(pcart *cart, int n){ boolean trovato; pcart aux; pcas bux, cux; aux=*cart; bux=(*cart)->casella; while(aux!=NULL){ while(bux!=NULL && trovato==false){ if((bux->numero)==n){ cux=bux; bux=bux->next; free(cux); trovato=true; } else bux=bux->next; } aux=aux->next; } } void eliminacart(pcart *cart, int m){ pcart aux, cux; aux=*cart; if(aux!=NULL){ if(m==0){ cux=aux; aux=aux->next; free(cux); } if(aux->casella==NULL) eliminacart(&(aux->next), m-1); else eliminacart(&(aux->next), m); } } int main() { int n; boolean ris; printf("dammi una costante n: \n"); scanf("%d", &n); printf("Inserisci interi, termina con 0\n"); ris=contasegno(0, 0, n); if(ris) printf("OK\n"); else printf("NO\n"); int a[dimA]={12, 4, 8, 1, 5}; int b[dimB]={30, 1, 45, 12}; int dimC; dimC=dimA+dimB; int c[dimA+dimB]={0}; int i, k; for(i=0; i